export interface InfoObject {
    action: string;
    gw: GwObject;
    wb: WbArray[] | WbObject;
}

export interface StudentObject {
    gw_mac?: string,
    edgroup_id?: number,
    class_id?: number,
    school_id?: number,
    name?: string,
    pageNum?: number,
    pageSize?: number
}
export interface actionLogOtaObject {
    taskid: string,
    gw_mac?: string | undefined,
    wb_mac: string | undefined,
    action: string,
    value: string,
    time: Date,
}

export interface WbData {
    idx: number;
    beacon1: number;
    beacon2: number;
    beacon3: number;
    acc_x: number;
    acc_y: number;
    acc_z: number;
    steps: number;
    hrv: number;
    hr: number;
    hr_confidence: number;
    temperature: number;
    bat_vol: number;
    charging: number;
    wear_on: number;
    req_rt: number;
    fake_hr: number;
}

export interface WbObject {
    addr: string;
    date: string;
    ip: string;
    rssi: number;
    format: number;
    data: Buffer | string;
    action: string;
    value: string;
    version: string;
}

export interface WbArray {
    addr: string;
    date?: string;
    ip?: string;
    action?: string;
    value?: string;
    rssi?: number;
    format?: number;
    data?: Buffer | string;
    version?: string;
    name?: string;
    fw_name?: string;
    fw_version?: string;
}[]

export interface GwObject {
    mac: string;
    version_bin?: string;
    version_fs?: string;
    taskId?: string;
    last_report_wb_cnt?: string;
    outdoor?: boolean;
    time?: Date;
    deleted?: boolean;
    last_report_time?: Date
}

export interface ReportObject {
    v: string | null;
    mid: number;
    time: number | null;
    ip: string | null;
    mac: string | null;
    devices: Buffer[];
}